Zookeeper 的权限管理
标签(空格分隔): zookeeper
zookeeper 对节点的权限分为五种,分别是 create delete read write admin
其中delete是对子节点的删除权限,其他都是节点自身的权限
与权限搭配的是授权的角色(role)
zookeeper提供了四种角色
world:默认的角色,对所有人开发
auth:已经授权的用户,作用和digest一样,不同的是auth在指定密码的时候,在命令行上可以用明文,而digest只能用密文。一般使用auth角色的时候,需要提前执行命令addauth digest username:password,然后再执行setAcl /nodePath auth:username:password:right
digest:指定用户名密码验证方式,setAcl /nodePath digest:username:password:rgith,注意这里的这里的password是密文哦。指定好角色后,如果想要对nodePath做操作,则需要通过addauth digest username:password.这里的password是密文
ip: 指定特定ip或者ip段的访问控制
发现没,其实auth 和 digest是一个意思。
关于权限设置需要注意的点 delete/create 只是该节点删除子节点和创建子节点的权限 read/write 是对当前节点的读和写的权限 admin 是对当前节点权限查看和操作的权限
通过zookeeper客户端访问封装的jar包的测试,发现,如果节点没有对delete进行权限验证,如果该节点的字节点将无法被删除。
例如
/node1 rw /node1/n1 all 那么/node1/n1 将无法没删除 同时/node1 也将无法被删除,因为递归删除的时候发现/node1/n1是无法删除的,所以删除失败。